home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / DTMFF110 / FREQ.H < prev    next >
C/C++ Source or Header  |  1997-08-05  |  6KB  |  206 lines

  1. #include <conio.h>
  2. #include <graphics.h>
  3. #include <dos.h>
  4.  
  5. /* #define DEBUG_OUTPUT 1 */
  6. /* #define DEBUG_MODE 1 */
  7.  
  8. /* Pointer for writing directly to the screen */
  9. #define screen(i) (*(unsigned char far *)MK_FP(0xA000,i))
  10.  
  11. #ifdef DEBUG_OUTPUT
  12. #define DOUT(string) puts(string)
  13. #else
  14. #define DOUT(string) {}
  15. #endif
  16.  
  17. /* Define the maximum buffer length. */
  18. #define MAX_LEN 2048
  19.  
  20. /*
  21.  *  Define the DMA buffering scheme.  Note that in the current setup for
  22.  *  running the buffers, having more than two buffers may improve the
  23.  *  continuity of the DMA, but will cause more lag in the display.
  24.  *  Also, the number of buffers must be 2 or greater.
  25.  */
  26. #define BUFFERS 20
  27.  
  28.  
  29. /* Define the positions of the various display elements */
  30. #define WINDOW_TOP 100
  31. #define WINDOW_BOTTOM 380
  32. #define WINDOW_LEFT 64
  33. #define WINDOW_RIGHT 576
  34.  
  35. #define SRX 320
  36. #define SRY 2
  37. #define FLX 320
  38. #define FLY 14
  39. #define FRX 320
  40. #define FRY 26
  41. #define WFX 320
  42. #define WFY 38
  43. #define DGX 320
  44. #define DGY 50
  45. #define DCX 320
  46. #define DCY 62
  47. #define LVX 224
  48. #define LVY 74
  49. #define MGX 320
  50. #define MGY 86
  51. #define PKX 550
  52. #define PKY 470
  53.  
  54. /* DOS values used here for VGA compatibility (1-6 not all supported) */
  55. #define GRAPH_COLOR    60
  56. #define LABEL_COLOR    59
  57. #define BORDER_COLOR    61
  58. #define TEXT_COLOR    62
  59. #define LIGHT_HIGHLIGHT 63
  60. #define DARK_HIGHLIGHT    56
  61.  
  62. #define UP_ARROW   0x148
  63. #define DOWN_ARROW 0x150
  64. #define LEFT_ARROW 0x14b
  65. #define RIGHT_ARROW 0x14d
  66. #define CTRL_LEFT  0x173
  67. #define CTRL_RIGHT 0x174
  68. #define CTRL_UP       0x18d
  69. #define CTRL_DOWN  0x191
  70. #define ALT_LEFT   0x19b
  71. #define ALT_RIGHT  0x19d
  72. #define ALT_UP       0x198
  73. #define ALT_DOWN   0x1a0
  74. #define HOME       0x147
  75. #define END       0x14f
  76. #define PG_UP       0x149
  77. #define PG_DN       0x151
  78. #define TAB       0x09
  79. #define SHFT_TAB   0x10f
  80.  
  81. #define CTCSS_MAX   50        /* number of CTCSS frequencies */
  82.  
  83. struct rgb
  84. {
  85.   int        red;
  86.   int        green;
  87.   int        blue;
  88. };
  89.  
  90. /*
  91.  * Defines for patch-in data processing routines.
  92.  * The routines are found in passdata.c
  93.  * Use NODISPLAY to disable the display code
  94.  * Use PASS_WAVEDATA to define a function to take the waveform data
  95.  * Use PASS_FFTDATA to define a function to take the FFT data
  96.  * Function declarations:
  97.  */
  98. void          pass_wavedata( void far * ptr, int samples, int sample_size );
  99. void          pass_fftdata( short *ptr, int samples );
  100.  
  101. /*#define NODISPLAY*/
  102.  
  103. /* Defines for soundcard usage.     Non-implemented ones are commented out */
  104. #define SC_SB8        0
  105. #define SC_SB16       1
  106.  
  107. /* Labels used for sound cards in the .ini file */
  108. #define SC_SB8_NAME   "SB8"
  109. #define SC_SB16_NAME  "SB16"
  110.  
  111. /* Default soundcard */
  112. #define SC_DEF    0
  113.  
  114. /* Mixer definitions */
  115. #define MIXER_EXT 0
  116. #define MIXER_INT 1
  117. #define MIXER_MIC 2
  118.  
  119. /* Default soundblaster settings */
  120. #define SB_IRQ 5
  121. #define SB_DMA 1
  122. #define SB_ADDR 0x220
  123.  
  124. /* FM Instrument definition */
  125. typedef struct
  126. {
  127.   unsigned char Level[2];
  128.   unsigned char Multiple[2];
  129.   unsigned char Atack[2];
  130.   unsigned char Decay[2];
  131.   unsigned char Sustain[2];
  132.   unsigned char Release[2];
  133.   unsigned char WaveSelect[2];
  134.   unsigned char Amp_Vib_EnvG[2];
  135.   unsigned char Algorithm;
  136.   unsigned char Feedback;
  137. }          FM_Instrument;
  138.  
  139. /* Functions in SETUPSUB.C */
  140. void          setnormalpalette( void );
  141. void          setbwpalette( void );
  142. void          parse_ini_file( void );
  143. void          parse_command( int, char *[], char *[] );
  144. int          parsecardname( char *label );
  145. void          setup_buffers( int );
  146. void          compute_window_function( void );
  147. void          xrange_check( void );
  148. void          setup_xscale( void );
  149. void          setup_linscales( void );
  150. void          setup_logscales( void );
  151. void          frequency_scale( void );
  152. void          amplitude_scale( void );
  153. void          update_header( void );
  154. void          show_help( void );
  155.  
  156. /* Functions in PROCINP.C */
  157. void          setup_vga( void );
  158. void          cleanup_vga( void );
  159. int          process_input( int, int );
  160. void          highlight( int );
  161. int          ctrlcfunc( void );
  162. void          reset_decay_buffers( void );
  163. void          draw_threshold_level( int color );
  164.  
  165. /* gr_dos.c 18/08/96 23.15.40 */
  166. char         *time_stamp( void );
  167. int          ctrlcfunc( void );
  168. void          setup_graphics( void );
  169. void          draw_text_left( int x, int y, char *string );
  170. void          draw_text_centered( int x, int y, char *string );
  171. void          draw_text_right( int x, int y, char *string );
  172. void          draw_text_vertical( int x, int y, char *string );
  173. void          draw_fontcolor( int c );
  174. void          draw_rectangle( int x1, int y1, int x2, int y2, int c );
  175. void          draw_line( int x1, int y1, int x2, int y2, int c );
  176. void          draw_bar( int x1, int y1, int x2, int y2, int c );
  177. void          draw_setpalatte( int n, int r, int g, int b );
  178. int          draw_getch( void );
  179. int          draw_getkey( void );
  180.  
  181. /* dtmf.c 10/06/97 03.31.46 */
  182. unsigned char op_p( int voice, int op );
  183. void          Sb_FM_Reset( void );
  184. void          Sb_FM_Key_Off( int voice );
  185. void          Sb_FM_Key_On( int voice, int freq, int octave );
  186. void          Sb_FM_Voice_Volume( int voice, int op, int vol );
  187. void          Sb_FM_Voice_At_De( int voice, int op, int atack, int decay );
  188. void          Sb_FM_Voice_Su_Re( int voice, int op, int sustain, int release );
  189. void          Sb_FM_Voice_Character( int voice, int op, int amp_vib_envg, int multiple );
  190. void          Sb_FM_Voice_WaveSelect( int voice, int op, int wave );
  191. void          Sb_FM_Voice_FeedBack( int voice, int type, int strength );
  192. void          Sb_FM_Set_Voice( int voice, FM_Instrument * ins );
  193. void          delay_loop( int time );
  194. void          generate_DTMF( char *nr );
  195. double          generate_CTCSS( int gen_ctcss );
  196.  
  197. /* Function in SC_SB.C */
  198. #ifdef SC_SB8
  199. void          init_sb8( char **environ );
  200. #endif
  201.  
  202. /* Function in SC_SB16.C */
  203. #ifdef SC_SB16
  204. void          init_sb16( char **environ );
  205. #endif
  206.